第1章 XPとは何か
#エクストリームプログラミング
XPはプログラミング技法、明確なコミュニケーション、チームワークなどを巧みに利用して、これまでに想像すらできなかったことを実現するためのソフトウェア開発のスタイルである。
コミュニケーション、フィードバック、シンプリシティ、勇気、リスペクトの価値をもとづいたソフトウェア開発の哲学
ソフトウェア開発の改善に有効であること実証された低数のプラクすティス
補完的な原則。価値をプラクティスに変換するための知的な技法。問題に対応できるプラクティスがない時に役にたつ
これらの価値やプラクティスを共有するコミュニティ
XPは開発者が高みに至るまでの道
開発サイクルが短期間により、継続的なフィードバックが得ることができる
計画手法がインクリメンタル。計画中の発展して全体計画を調整できる
機能の実装スケジュールが柔軟。
自動テストを信頼している
口頭でのコミュニケーション、テスト、ソースコードを信頼している
進化的な設計プロセスを信頼している
普通の才能をもった積極的な個人がお互いに協力しあうことを信頼しちえる
チームメンバーが短期的な動機と朝的な利益の両方につながるプラクティスを信頼しちえる
XPの全体像
軽量である。顧客にバリューを提供する必要最低限のものだけを実施する。
ソフトウェア開発の方法論。
XPはあらゆる規模のチームに使える。ただし、メンバーが増えた時にはプラクティスに変更や追加が必要になる
あいまいで急速に変化する要件に対応する
XPは従来の古い習慣を捨てて、現状にあわせた新しい習慣を導入していく
XPの開発プロセスのリスクに対応するリスク
スケジュールの遅延
特定のイテレーション範囲で優先順位の高いフィーチャーを実装するため、スケジュールの遅延は限定的になる
プロジェクトの打ち切り
ビジネス側の最小限のリリース範囲をきめて行う。そうすることで、急なプロジェクトの打ち切りになることはない。
システムの劣化
包括的の自動テストスイートを作成するので、いつでもリリース可能な状態を保つことができる
欠陥率の高さ
開発側のテストとフィーチャー単位のテストを実装する
ビジネスの誤解
ビジネス担当をチームメンバーに追加することで、要求の変更を取り入れやすくする
ビジネスの変化
リリースサイクルは小さくしているため、一つの開発期間で変更する箇所は小さい。そうすることで、フィーチャーの優先度に合わせて作業内容を変更することができる
必要のないフィーチャーばかり
優先順位の高いタスクだけ対応する
人材の流出
XPではプログラマーが見積もりなどを行うことによって、無茶な要望を依頼されて不満を感じることは少ない
不満の多くは孤独という理由だが、XPではチームの中で人間関係にも重きを置いているので、孤独に感じるメンバーはすくなくなる
XPとはなにか
後悔のない技術的/社会的な古い習慣を捨て、効果のある新しい習慣を選ぶこと
自分が今日やるべきことを十分に理解することである
明日をよりよくしようとすることである
チームのゴールに貢献した自分を評価することである
ソフトウェア開発で人間としての要求を満たすこと